<?php

namespace app\api\controller\v1;

use app\api\validate\IDCollection;
use app\api\validate\IDMustBePositiveInt;
use app\lib\exception\ThemeException;
use app\api\model\Theme as ThemeModel;

class Theme
{
	/**
	 * @url /them?ids=id1,id2,id3,...
	 * @return  一组theme模型
	 */
	public function getSimpleList($ids='')
	{
		(new IDCollection())->goCheck();
		// return 'success';
		$ids = explode(',', $ids);
		$result = ThemeModel::with('topicImg,headImg')
					->select($ids);
		// if(!$result){  //数据库返回数组的写法。
		// 因database.php 返回数据类型改为数据集。需要将上面的改写成下面的写法。
		if($result->isEmpty()){  //数据库返回数据集的写法.   TP5内置对象为空判断方法。
			throw new ThemeException();
		}
		return $result;

		// $banner = BannerModel::getBannerByID($id);
		// if(!$banner){ //异常抛出，不打断思路
		// 	throw new BannerMissException();//抛出异常
		// 	// throw new Exception('内部错误');//发关系统内部错误异常，调试使用。
		// }
		// return $banner;
	}

	/**
	 * @url /theme/:id
	 */
	public function getComplexOne($id){
		// return 'success';
		(new IDMustBePositiveInt())->goCheck();
		$theme = ThemeModel::getThemeWithProducts($id);
		if(!$theme){
			throw new ThemeException();
		}
		return $theme;
	}
}